package com.vhall.component.entity.lottery.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * 抽奖活动
 *
 * @author zhangtao
 */
@Data
@TableName("lottery")
public class LotteryEntity implements Serializable {

    private static final long serialVersionUID = 1597657623791L;

    /**
     * 主键
     * 抽奖ID（主键）
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * PaaS应用ID
     */
    @TableField("app_id")
    private String appId;

    /**
     * 创建者ID
     */
    @TableField("creator_id")
    private String creatorId;

    /**
     * 来源ID
     */
    @TableField("source_id")
    private String sourceId;

    /**
     * 创建者昵称
     */
    @TableField("creator_nickname")
    private String creatorNickname;

    /**
     * 创建者头像
     */
    @TableField("creator_avatar")
    private String creatorAvatar;

    /**
     * 抽奖标题
     */
    private String title;

    /**
     * 图片标识
     */
    private String icon;

    /**
     * 本次抽奖活动说明
     */
    private String remark;

    /**
     * 抽奖规则 1：随机抽奖  2：满足条件的抽奖
     */
    @TableField("lottery_rule")
    private Integer lotteryRule;
    /**
     * 参与抽奖人员范围：
     *  1 参与点赞的用户 2 关注当前直播栏目的用户 3 发表指定评论的用户
     */
    @TableField("lottery_type")
    private Integer lotteryType;

    /**
     * 中奖人数
     */
    @TableField("lottery_number")
    private Integer lotteryNumber;

    /**
     * 参与人数
     */
    @TableField("join_number")
    private Integer joinNumber;

    /**
     * 实际中奖人数
     */
    @TableField("actual_lottery_number")
    private Integer actualLotteryNumber;

    /**
     * 抽奖状态：0 开始抽奖 1 抽奖完成（结束）
     */
    @TableField("lottery_status")
    private Integer lotteryStatus;

    /**
     * 业务单元
     */
    private Integer bu;

    /**
     * 抽奖开始时间
     */
    @TableField("begin_time")
    private Date beginTime;
    /**
     * 结束时间
     */
    @TableField("finish_time")
    private Date finishTime;
    /**
     * 抽奖时长
     */
    @TableField("duration")
    private Integer duration;
    /**
     * 是否允许重复中奖  0-允许， 1-不允许（默认）
     */
    @TableField("repeat_lottery")
    private Integer repeatLottery;

    /**
     * 邀请人数
     */
    @TableField("invite_number")
    private Integer inviteNumber;

    /**
     * 邮箱
     */
    private String mail;

    /**
     * 是否已删除 0 表示未删除 1 表示已删除
     */
    private Integer deleted;

    /**
     * 扩展字段
     */
    private String extension;

    /**
     * 口令
     */
    private String command;

    /**
     * 公布中奖人名单 0-否(默认), 1-是
     */
    @TableField("publish_winner")
    private Integer publishWinner;

    /**
     * 需要填写领奖信息 0-否(默认), 1-是
     */
    @TableField("need_take_award")
    private Integer needTakeAward;

    /**
     * 奖品快照
     */
    @TableField("award_snapshoot")
    private String awardSnapshoot;

    /**
     * 创建时间
     */
    @TableField("created_at")
    private LocalDateTime createdAt;

    /**
     * 删除时间
     */
    @TableField("deleted_at")
    private LocalDateTime deletedAt;

    /**
     * 更新时间
     */
    @TableField("updated_at")
    private LocalDateTime updatedAt;

    @TableField("lottery_join_mark")
    private String lotteryJoinMark;
    /**
     * 奖品类型 1:实物奖品
     */
    @TableField("lottery_prize_type")
    private Integer lotteryPrizeType;
}
